package com.zhenghaijin.searchservice.controller;

import com.zhenghaijin.searchservice.model.Anime;
import com.zhenghaijin.searchservice.model.ApiResponse;
import com.zhenghaijin.searchservice.model.PageResult;
import com.zhenghaijin.searchservice.service.AnimeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/anime")
public class AnimeController {

    @Autowired
    private AnimeService animeService;

    /**
     * 搜索动漫接口，支持关键字、分类、标签筛选及分页
     *
     * @param keyword  关键字（可选）
     * @param category 分类（可选）
     * @param tag      标签（可选）
     * @param page     当前页（可选，默认为1）
     * @param size     每页大小（可选，默认为10）
     * @return 统一格式的 JSON 响应，包含分页结果
     */
    @GetMapping("/search")
    public ApiResponse<PageResult<Anime>> search(
            @RequestParam(required = false) String keyword,
            @RequestParam(required = false) String category,
            @RequestParam(required = false) String tag,
            @RequestParam(defaultValue = "1") int page,
            @RequestParam(defaultValue = "10") int size) {
        PageResult<Anime> result = animeService.search(keyword, category, tag, page, size);
        return ApiResponse.success(result);
    }
}